const { DataTypes } = require('sequelize')
const seq = require('../utils/seq')
const moment = require('moment')

/**
 *账单id：id
  支出金额：money
  类别：type Int（1收入/0支出）
  分类：tag JSON: { name: ‘买菜’, icon: ‘icon-foot’ }
  支付方式：pay String
  支付时间：ptime String
  定位：location JSON: { code: [1001, 1002, 1003], city: [‘四川省’, ‘成都市’, ‘青羊区’] }
  用户id： uid UUID
  备注：remark
  模板：template Boolean false
  创建时间：ctime
  更新时间：mtime
 */

module.exports = seq.define('account', {
  id: {
    type: DataTypes.UUID,
    primaryKey: true,
    allowNull: false,
    defaultValue: DataTypes.UUIDV4,
    comment: '账目id'
  },
  money: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '支出金额'
  },
  type: {
    type: DataTypes.INTEGER,
    allowNull: false,
    comment: '类别（1收入/0支出）'
  },
  tag: {
    type: DataTypes.JSON,
    allowNull: false,
    comment: '分类'
  },
  pay: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '支付方式'
  },
  ptime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '支付时间'
  },
  location: {
    type: DataTypes.JSON,
    allowNull: false,
    comment: '定位'
  },
  uid: {
    type: DataTypes.UUID,
    allowNull: false,
    comment: '用户表外键'
  },
  ctime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '创建时间'
  },
  mtime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '更改时间'
  },
  remark: {
    type: DataTypes.TEXT,
    comment: '备注'
  },
  template: {
    type: DataTypes.BOOLEAN,
    defaultValue: false,
    comment: '模板'
  }
})